package jp.seraph.jsmf.motion;

import java.util.List;

import jp.seraph.jsade.task.AgentTask;

/**
 * モーションを構成する中間要素 0個以上の子要素で構成される
 *
 */
public interface MotionSession {

    /**
     * 引数の名前を持つ子要素を返す
     *
     * @param aElementName
     * @return
     */
    public MotionElement getElement(String aElementName);

    /**
     * このセッションに存在する子要素の数を返す
     *
     * @return 子要素数
     */
    public int getElementCount();

    public String getName();

    public List<MotionElement> toElementList();

    /**
     * このセッションを表すタスクを生成して返します。
     *
     * @return
     */
    public AgentTask toTask();
}
